package com.cqqs.mapper.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;

/**
 * 科技项目
 *
 * @author mjxie
 * @date 2022/09/23
 */
@Data
@TableName(value = "tech_project")
@ApiModel(value = "项目信息")
public class TechProject implements Serializable {


    /**
     * 项目流水号
     */
    @TableId(value = "project_id", type = IdType.AUTO)
    private Integer projectId;

    /**
     * 项目大类
     */
    @TableField(value = "class_name")
    private String className;

    /**
     * 项目编号（省）
     */
    @TableField(value = "no")
    private String no;

    /**
     * 项目编号（分）
     */
    @TableField(value = "sub_no")
    private String subNo;

    /**
     * 档案号
     */
    @TableField(value = "archive_no")
    private String archiveNo;

    /**
     * 项目名称
     */
    @TableField(value = "name")
    private String name;

    /**
     * 申请单位流水号
     */
    @TableField("department_id")
    private Integer departmentId;

    /**
     * 申请单位名称
     */
    @TableField(value = "department")
    private String department;

    /**
     * 申请单位编号
     */
    @TableField(value = "department_code")
    private String departmentCode;

    /**
     * 承担单位流水号
     */
    @TableField("execute_department_id")
    private Integer executeDepartmentId;

    /**
     * 承担单位名称
     */
    @TableField(value = "execute_department")
    private String executeDepartment;

    /**
     * 承担单位编号
     */
    @TableField(value = "execute_department_code")
    private String executeDepartmentCode;

    /**
     * 施工单位
     */
    @TableField(value = "constuct_department")
    private String constuctDepartment;

    /**
     * 申请日期
     */
    @TableField("create_date")
    private LocalDateTime createDate;

    /**
     * 预计开始日期
     */
    @TableField("start_date")
    private LocalDateTime startDate;

    /**
     * 预计结束日期
     */
    @TableField("finish_date")
    private LocalDateTime finishDate;

    /**
     * 验收日期
     */
    @TableField("check_date")
    private LocalDateTime checkDate;

    /**
     * 组织验收单位
     */
    @TableField(value = "check_department")
    private String checkDepartment;

    /**
     * 验收方式
     */
    @TableField(value = "check_mode")
    private String checkMode;

    /**
     * 资助费用（万元）
     */
    @TableField("supply_fund")
    private BigDecimal supplyFund;

    /**
     * 自筹费用（万元）
     */
    @TableField("self_fund")
    private BigDecimal selfFund;

    /**
     * 审批总金额（万元）
     */
    @TableField("approve_fund")
    private BigDecimal approveFund;

    /**
     * 已发生费用总额
     */
    @TableField("spend_fund")
    private BigDecimal spendFund;

    /**
     * 资本金
     */
    @TableField("capital_fund")
    private BigDecimal capitalFund;

    /**
     * 成本金
     */
    @TableField("cost_fund")
    private BigDecimal costFund;

    /**
     * 项目类型
     */
    @TableField("type")
    private Integer type;

    /**
     * 项目品质
     */
    @TableField("quality")
    private Integer quality;

    /**
     * 资金来源（A,B）
     */
    @TableField(value = "source")
    private String source;

    /**
     * 申请人id
     */
    @TableField(value = "proposer_id")
    private String proposerId;

    /**
     * 申请人
     */
    @TableField(value = "proposer")
    private String proposer;

    /**
     * 流程区域
     */
    @TableField(value = "flow_area")
    private String flowArea;

    /**
     * 项目区域
     */
    @TableField("area_id")
    private Integer areaId;

    /**
     * 平衡标志
     */
    @TableField("validate_flag")
    private Integer validateFlag;

    /**
     * 回退标志
     */
    @TableField("is_rollback")
    private Integer isRollback;

    /**
     * 项目状态
     */
    @TableField("state")
    private Integer state;

    /**
     * 立项年度
     */
    @TableField("approve_year")
    private Integer approveYear;

    /**
     * 项目子状态
     */
    @TableField("sub_state")
    private Integer subState;

    /**
     * 是否结转标志
     */
    @TableField("continue_flag")
    private Integer continueFlag;

    /**
     * 招标方式
     */
    @TableField(value = "bid_type")
    private String bidType;

    /**
     * 简要内容
     */
    @TableField("summary")
    private String summary;

    /**
     * 电压等级
     */
    @TableField("vol_class")
    private Integer volClass;

    /**
     * 项目负责人id
     */
    @TableField("manager_id")
    private Integer managerId;

    /**
     * 属于安措，反措
     */
    @TableField(value = "safety_type")
    private String safetyType;

    /**
     * 项目负责人
     */
    @TableField(value = "manager")
    private String manager;

    /**
     * 协作单位
     */
    @TableField(value = "associate_department")
    private String associateDepartment;

    /**
     * 协作形式
     */
    @TableField(value = "associate_mode")
    private String associateMode;

    /**
     * 通信地址
     */
    @TableField(value = "address")
    private String address;

    /**
     * 邮政编码
     */
    @TableField(value = "postalcode")
    private String postalcode;

    /**
     * 联系电话
     */
    @TableField(value = "telephone")
    private String telephone;

    /**
     * 传真
     */
    @TableField(value = "fax")
    private String fax;

    /**
     * 备用文本字段1
     */
    @TableField(value = "project_note1")
    private String projectNote1;

    /**
     * 备用文本字段2
     */
    @TableField(value = "project_note2")
    private String projectNote2;

    /**
     * 备用文本字段3
     */
    @TableField(value = "project_note3")
    private String projectNote3;

    /**
     * 备用数字字段1
     */
    @TableField("project_number1")
    private Integer projectNumber1;

    /**
     * 备用数字字段2
     */
    @TableField("project_number2")
    private Integer projectNumber2;

    /**
     * 备用日期字段1
     */
    @TableField("project_date1")
    private LocalDateTime projectDate1;

    /**
     * 备用日期字段2
     */
    @TableField("project_date2")
    private LocalDateTime projectDate2;

    /**
     * 任务书状态
     */
    @TableField("task_state")
    private Integer taskState;

    /**
     * 证书编号
     */
    @TableField(value = "certificate_no")
    private String certificateNo;

    /**
     * 技术评价水平
     */
    @TableField(value = "estimate_level")
    private String estimateLevel;

    /**
     * 方向分类
     */
    @TableField(value = "orientation_class")
    private String orientationClass;

    /**
     * 技术分类
     */
    @TableField(value = "techno_class")
    private Integer technoClass;

    /**
     * 批次
     */
    @TableField(value = "batch_no")
    private String batchNo;

    /**
     * 项目子类型
     */
    @TableField(value = "big_class")
    private String bigClass;

    /**
     * 是否申报国网进步奖
     */
    @TableField("state_award")
    private Integer stateAward;

    /**
     * 审批自主费用（万元）
     */
    @TableField("approve_supply_fund")
    private BigDecimal approveSupplyFund;

    /**
     * 审批自筹费用（万元）
     */
    @TableField("approve_self_fund")
    private BigDecimal approveSelfFund;

    /**
     * 审批资本金
     */
    @TableField("approve_capital_fund")
    private BigDecimal approveCapitalFund;

    /**
     * 审批成本金
     */
    @TableField("approve_cost_fund")
    private BigDecimal approveCostFund;

    /**
     * 自筹资本金
     */
    @TableField("self_capital_fund")
    private BigDecimal selfCapitalFund;

    /**
     * 自筹成本金
     */
    @TableField("self_cost_fund")
    private BigDecimal selfCostFund;

    /**
     * 出资单位
     */
    @TableField("contribution_dept")
    private String contributionDept;

    /**
     * 预算金额
     */
    @TableField("budget")
    private BigDecimal budget;

    /**
     * 决算金额
     */
    @TableField("accounts")
    private BigDecimal accounts;

    /**
     * 资本化金额
     */
    @TableField("capitalization")
    private BigDecimal capitalization;

    /**
     * 费用化金额
     */
    @TableField("expensization")
    private BigDecimal expensization;

    /**
     * 初始申请费总额
     */
    @TableField("begin_application_fee")
    private BigDecimal beginApplicationFee;

    /**
     * 初始申请年费总额
     */
    @TableField("begin_annual_fee")
    private BigDecimal beginAnnualFee;

    /**
     * 附属载体
     */
    @TableField("carrier")
    private String carrier;

    /**
     * 设备分类
     */
    @TableField("equipment_type")
    private Integer equipmentType;

    /**
     * 应用阶段（成熟度）:1尚在研究,2本单位应用,3系统内多家单位应用,4全系统推广,5在售产品已采用,6后续产品可能采用,7后续产品确定采用,8淘汰技术
     */
    @TableField("maturity")
    private Integer maturity;

    /**
     * 是否获奖
     */
    @TableField("is_award")
    private Integer isAward;

    /**
     * 获奖年份
     */
    @TableField("award_year")
    private Integer awardYear;

    /**
     * 国内市场前景
     */
    @TableField("domestic_prospect")
    private String domesticProspect;

    /**
     * 国内市场前景说明
     */
    @TableField("domestic_prospect_explain")
    private String domesticProspectExplain;

    /**
     * 国外市场前景
     */
    @TableField("abroad_prospect")
    private String abroadProspect;

    /**
     * 国外市场前景说明
     */
    @TableField("abroad_prospect_explain")
    private String abroadProspectExplain;

}
